The present invention relates to finite impulse response (FIR) digital filters used in signal sample rate conversion (i.e., decimation filters). More particularly, the present invention relates to a compact hardware implementation for an FIR decimating filter used in oversampling analog-to-digital converters.
Decimation filters commonly are used for digital signal processing in such fields as communications, instrumentation, data acquisition, audio-video, industrial control, etc. The input signal SIGin to a decimation filter is a digital signal of limited bandwidth Fs/2, and is represented as a stream of digital samples at a rate Fa. The decimation filter generates an output sequence SIGout that is a digital signal of limited bandwidth Fo/2, and is represented as a stream of digital samples at a rate Fo. The input rate Fs typically is an integer multiple of the output rate Fo. The decimation ration N is defined as N=Fa/Fo. The decimation filter operates at a clock rate Felk that typically is an integer multiple of both Fs and Fo.
An FIR decimation filter is represented by a coefficient sequence h(n) having a finite length L. The filter generates output samples Sout by convolving the input sequence SIGin of unbounded length with the coefficient sequence h(n). Output sequence SIGout is formed by selecting every N-th sample of output samples Sout. The remaining N-1 output samples Sout are discarded.
In oversampling analog-to-digital converters, a decimation filter typically is used to lower the sampling rate of a signal generated by a delta-sigma modulator. The decimation filter also must adequately attenuate quantization noise generated by the modulator. If the analog-to-digital converter implements double integration sigma-delta modulation, a decimation filter having a Sinc3(Nxcfx89T/2) frequency response is desirable, where T=1/Fs. For other analog-to-digital converter designs, decimation filters having higher order (e.g., Sinc4(Nxcfx89T/2) and higher) frequency response are desirable.
As the filter length L increases, the size of the coefficient sequence h(n) becomes very large, and the circuitry related to it occupies a significant area. Traditionally, the sequence h(n) is stored in random access memory (RAM) or read only memory (ROM), and a dedicated state machine retrieves the coefficients from memory as necessary. Although such an approach provides flexibility with respect to coefficient values, the required circuitry is nevertheless prohibitively large for many applications. For example, an FIR filter with L=1024 and a coefficient word size of 32 bits requires a total coefficient memory of 32K bits.
To eliminate the need for a RAM or ROM storage array for the filter coefficients, investigators have proposed calculating the coefficient sequence h(n) in real-time. For example, James C. Candy et al., xe2x80x9cUsing Triangularly Weighted Interpolation to Get 13-Bit PCM from a Sigma-Delta Modulator,xe2x80x9d IEEE Trans. Commun., vol. COM-24, pp. 1268-1275, Nov. 1976, describes hardware that generates the h(n) sequence for decimation filters having Sinc(Nxcfx89T/2), Sinc2(Nxcfx89T/2) and intermediate derivative frequency response characteristics. Candy""s circuits, however, become increasingly complex and restrictive for higher order filters.
In addition, Hanafy Meleis and Pierre Le Fur, xe2x80x9cA novel Architecture Design for VLSI Implementation of an FIR Decimation Filter,xe2x80x9d IEEE Proc. ICASSP ""85, pp. 1380-1383, March 1985, describes hardware that generates the h(n) sequence for a decimation filter having a Sinc3(Nxcfx89T/2) frequency response. The described hardware, however, is limited to a Sinc3(Nxcfx89T/2) filter.
In view of the foregoing, it would be desirable to provide a compact hardware implementation of an FIR digital decimation filter.
It also would be desirable to provide an apparatus for generating in real-time the coefficients of a digital decimation filter for a large class of complex decimation filters, of which the Sinc4(Nxcfx89T/2) filter is a specific example.
Accordingly, it is an object of this invention to provide a compact hardware implementation of an FIR digital decimation filter.
It also is an object of this invention to provide methods and apparatus for generating in real-time the coefficients of a digital decimation filter for a large class of complex decimation filters, of which the Sinc4(Nxcfx89T/2) filter is a specific example.
In accordance with these and other objects of the present invention, methods and apparatus for generating coefficients of a digital decimation filter are described that use a predetermined input sequence x(n) of Length L, and generates L filter coefficients h(n). The predetermined input sequence x(n) is very simple, and may be used to generate a much more complex output sequence h(n) with minimal computational complexity.
The coefficient generator includes at least one adder and accumulator that receives the input sequence and generates the output sequence. In one exemplary embodiment, the at least one adder and accumulator includes a multi-bit adder and a multi-bit accumulator register. In a first alternative embodiment, the at least one adder and accumulator includes a binary full adder and a serial shift register. In a second alternative embodiment, the at least one adder and accumulator includes a plurality of interleaved binary full adders and serial shift registers.
In addition, methods and apparatus for digitally filtering an input sequence are described that generate the filter coefficients h(n) and perform the filtering operation in real-time.